Classe T System.Collections.ObjectModel.ObservableCollection<T>

Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.

La ObservableCollection<T> classe représente une collection de données dynamique qui fournit des notifications lorsque des éléments sont ajoutés ou supprimés, ou lorsque la liste entière est actualisée.

Dans de nombreux cas, les données que vous utilisez sont une collection d’objets. Par exemple, un scénario courant dans la liaison de données consiste à utiliser un ItemsControl tel qu’un ListBox, ListViewou TreeView pour afficher une collection d’enregistrements.

Vous pouvez énumérer n’importe quelle collection qui implémente l’interface IEnumerable. Toutefois, pour configurer des liaisons dynamiques afin que les insertions ou les suppressions dans la collection mettent à jour l’IU automatiquement, la collection doit implémenter l’interface INotifyCollectionChanged. Cette interface expose l’événement CollectionChanged , événement qui doit être déclenché chaque fois que la collection sous-jacente change.

La ObservableCollection<T> classe est un type de collection de données qui implémente l’interface INotifyCollectionChanged .

Avant d’implémenter votre propre collection, envisagez d’utiliser ObservableCollection<T> ou l’une des classes de collection existantes, telles que List<T>, Collection<T>et BindingList<T>, entre autres. Si vous avez un scénario avancé et souhaitez implémenter votre propre collection, envisagez d’utiliser IList, qui fournit une collection non générique d’objets qui peuvent être accessibles individuellement par index. L’implémentation IList offre les meilleures performances avec le moteur de liaison de données.

Remarque

Pour prendre entièrement en charge le transfert de valeurs de données d’objets sources de liaison vers des cibles de liaison, chaque objet de votre collection qui prend en charge les propriétés pouvant être liées doit implémenter un mécanisme de notification modifié de propriété approprié, tel que l’interface INotifyPropertyChanged .

Pour plus d’informations, consultez « Liaison à des collections » dans Vue d’ensemble de la liaison de données.

Remarques sur l’utilisation xaml

ObservableCollection<T> peut être utilisé comme élément d’objet XAML dans Windows Presentation Foundation (WPF), dans les versions 3.0 et 3.5. Toutefois, l’utilisation présente des limitations substantielles.

  • ObservableCollection<T> doit être l’élément racine, car l’attribut x:TypeArguments qui doit être utilisé pour spécifier le type contraint du générique ObservableCollection<T> est pris en charge uniquement sur l’élément objet de l’élément racine.

  • Vous devez déclarer un x:Class attribut (ce qui implique que l’action de génération pour ce fichier XAML doit être Page ou une autre action de génération qui compile le code XAML).

  • ObservableCollection<T> se trouve dans un espace de noms et un assembly qui ne sont pas initialement mappés à l’espace de noms XML par défaut. Vous devez mapper un préfixe pour l’espace de noms et l’assembly, puis utiliser ce préfixe sur la balise d’élément d’objet pour ObservableCollection<T>.

Un moyen plus simple d’utiliser ObservableCollection<T> des fonctionnalités de XAML dans une application consiste à déclarer votre propre classe de collection personnalisée non générique qui dérive de ObservableCollection<T>, et la limite à un type spécifique. Mappez ensuite l’assembly qui contient cette classe et référencez-le en tant qu’élément objet dans votre code XAML.